观察者如何用|云美一生手游攻略资讯网 观察者 kfk
摘要:观察者模式是一种设计模式,主要用于处理对象间的一对多依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新,以下是如何使用观察者模式的基本步骤: 定义观察者(Observer...,观察者如何用|云美一生手游攻略资讯网 观察者 kfk
观察者玩法是一种设计玩法,主要用于处理对象间的一对多依赖关系,当壹个对象的情形发生变化时,全部依赖于它的对象都会得到通知并自动更新,下面内容是怎样运用观察者玩法的基本流程:
定义观察者(Observer)
观察者通常一个接口或抽象类,它定义了更新自己的方式。
class Observer: def update(self, subject): pass
定义主题(Subject)
主题维护壹个观察者列表,并提供方式来添加、删除和通知观察者。
class Subject: def __init__(self): self._observers = [] def register_observer(self, observer): self._observers.append(observer) def unregister_observer(self, observer): self._observers.remove(observer) def notify_observers(self): for observer in self._observers: observer.update(self)
实现具体观察者(Concrete Observer)
具体观察者实现update
方式,当主题情形变化时,该方式会被调用。
class ConcreteObserver(Observer): def update(self, subject): print(f"Observer received notification from {subject.__class__.__name__}")
运用观察者玩法
创建主题对象,注册观察者,接着改变主题情形以通知观察者。
# 创建主题 subject = Subject() # 创建观察者 observer1 = ConcreteObserver() observer2 = ConcreteObserver() # 注册观察者 subject.register_observer(observer1) subject.register_observer(observer2) # 改变主题情形,通知观察者 subject.notify_observers()
注意事项
- 主题和观察者之间不应存在任何直接的依赖关系。
- 观察者应该只依赖于主题的接口,而不是实现。
- 观察者玩法适用于当对象间存在一对多关系,且需要通知全部依赖对象时。
一个简单的观察者玩法实现,在实际应用中,也许需要根据具体需求进行调整。